package com.filetransfer.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * ThemeManager 是一个单例类，用于管理应用的主题状态（浅色/深色）。
 */
public class ThemeManager {
    private static final String PREFS_NAME = "theme_prefs";  // SharedPreferences 文件名
    private static final String KEY_IS_DARK = "is_dark";    // 主题状态键

    private static ThemeManager instance;
    private final SharedPreferences preferences;

    /**
     * 私有构造函数，确保单例模式
     */
    private ThemeManager(Context context) {
        preferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);

        // 初始化时检查系统默认主题，仅在首次使用时设置
        if (!preferences.contains(KEY_IS_DARK)) {
            boolean isSystemDark = (context.getResources().getConfiguration().uiMode &
                    android.content.res.Configuration.UI_MODE_NIGHT_MASK) ==
                    android.content.res.Configuration.UI_MODE_NIGHT_YES;
            setDarkTheme(isSystemDark);
        }
    }

    /**
     * 获取 ThemeManager 实例
     */
    public static ThemeManager getInstance(Context context) {
        if (instance == null) {
            synchronized (ThemeManager.class) {
                if (instance == null) {
                    instance = new ThemeManager(context.getApplicationContext());
                }
            }
        }
        return instance;
    }

    /**
     * 检查当前是否为深色主题
     */
    public boolean isDarkTheme() {
        return preferences.getBoolean(KEY_IS_DARK, false);
    }

    /**
     * 设置主题为深色或浅色
     */
    public void setDarkTheme(boolean isDark) {
        preferences.edit().putBoolean(KEY_IS_DARK, isDark).apply();
    }
}